#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=2e5+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
//根号r平方最多等于,小于不用管,如果+1则会导致大于边界r
//但是根号l平方如果==l 那么b-a就少算了一个,反之b-a刚好漏掉一个小于l的就不用ans++
//自己模拟一下l=3 r=13就会理解了
ll l,r;//l=根号l开方 r同理
void solve()
{
	cin>>l>>r;
	ll a=sqrt(l);
	ll b=sqrt(r);
	ll ans=b-a;
	if(a*a==l) ans++;
	cout<<ans<<'\n';
}

int main()
{
	close();
	int T; cin>>T;
	while (T--) solve();
	return 0;
}